Spring Security Nedir? Spring Boot ile Authentication ve Authorization (2026)

Spring Security nedir?
Spring Security, Spring Boot uygulamalarında authentication (kimlik doğrulama) ve authorization (yetkilendirme) işlemlerini yöneten bir güvenlik framework’üdür. HTTP isteklerini filter chain üzerinden kontrol ederek uygulama güvenliğini sağlar.

Spring Security nedir ve nasıl çalışır? Eğer Spring Boot ile güvenli bir API veya web uygulaması geliştiriyorsanız, authentication, authorization ve JWT kavramlarını doğru anlamanız gerekir.

Bu rehberde şunları öğreneceksiniz:
  • Spring Security nasıl çalışır?
  • Filter chain mantığı nedir?
  • Authentication ve authorization farkı nedir?
  • Spring Boot’ta security config nasıl yapılır?
  • JWT ile stateless authentication nasıl kurulur?

Token nedir, JWT nasıl çalışır ve authentication süreci nasıl ilerler öğrenmek için: Token Nedir? Access ve Refresh Token rehberine de göz atabilirsiniz.


Spring Security Nedir ve Ne İşe Yarar?

Spring Security, Java ve özellikle Spring Boot uygulamalarında kullanıcı kimliğini doğrulamak ve kaynaklara erişimi kontrol etmek için kullanılan güçlü bir güvenlik katmanıdır.

  • Login mekanizması
  • Role bazlı yetkilendirme
  • JWT doğrulama
  • CSRF koruması
  • Session yönetimi

Authentication ve Authorization Farkı

Authentication (Kimlik Doğrulama)

Kullanıcının kim olduğunu doğrulama sürecidir.

Authorization (Yetkilendirme)

Doğrulanan kullanıcının hangi kaynaklara erişebileceğini belirler.

Authentication → “Kimsin?”
Authorization → “Neye erişebilirsin?”


Spring Security Nasıl Çalışır? (Filter Chain Mantığı)

Spring Security, gelen HTTP isteklerini bir Security Filter Chain üzerinden geçirir. Her istek güvenlik filtreleri tarafından kontrol edilir, ardından authentication ve authorization işlemleri uygulanır.

Spring Security Filter Chain çalışma mantığı
Spring Security Filter Chain akışı

Temel akış:

HTTP Request
    ↓
Security Filter Chain
    ↓
Authentication Manager
    ↓
Authorization Check
    ↓
Controller
Kritik bilgi: Spring Security'nin çalışma mantığını anlamadan JWT veya authentication sistemini doğru kuramazsınız.

Spring Boot’ta Basit Security Config (Spring Boot 2.x)

Spring Security config örnek kodu
Spring Security kodları
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/public/**").permitAll()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .and()
            .csrf().disable();
    }
}

Bu yapı:

  • /public/** → herkes erişebilir
  • /admin/** → sadece ADMIN rolü erişebilir
  • Diğer tüm endpointler → authentication gerektirir
Not: Spring Boot 3 / Spring Security 6 ile WebSecurityConfigurerAdapter yaklaşımı yerine SecurityFilterChain bean’i kullanılır.

Spring Security JWT ile Authentication Nasıl Yapılır?

Modern API mimarilerinde Spring Security genellikle JWT (JSON Web Token) ile birlikte kullanılır. Bu yaklaşım, session tutmadan stateless authentication sağlar.

Spring Security JWT authentication akışı
JWT ile stateless authentication mimarisi

JWT yapısını detaylı öğrenmek için: JWT Nedir?


Stateless vs Stateful Security

Özellik Stateful Stateless (JWT)
Session Var Yok
Ölçeklenebilirlik Daha düşük Yüksek
Sunucu Hafızası Kullanır Kullanmaz

Production Best Practices (2026)

  • CSRF sadece session-based uygulamalarda açık bırakılmalı
  • JWT süresi kısa tutulmalı
  • Refresh token rotation uygulanmalı
  • Password encoder (BCrypt) kullanılmalı
  • Security config minimal tutulmalı
Pratik öneri: Refresh endpoint’ine rate limiting ekleyin ve logout işlemlerinde refresh token’ları iptal edin.

Sık Yapılan Hatalar

  • permitAll ile tüm endpointleri açmak
  • JWT doğrulamasını filter chain’e eklememek
  • CSRF mantığını yanlış anlamak
  • Password’ü plain text saklamak

Sık Sorulan Sorular

Spring Security ne işe yarar?

Spring Security, kullanıcı kimliğini doğrulamak ve erişim kontrolü sağlamak için kullanılır.

Spring Security ile JWT zorunlu mu?

Hayır, zorunlu değildir. Ancak modern API mimarilerinde çoğunlukla JWT ile birlikte kullanılır.

Authentication ve Authorization farkı nedir?

Authentication kullanıcının kim olduğunu doğrular, authorization ise hangi kaynaklara erişebileceğini belirler.


Sonuç

Spring Security, modern Java uygulamalarında güvenliğin temel bileşenlerinden biridir. Doğru yapılandırıldığında hem güvenlik hem de ölçeklenebilirlik sağlar.

API performansını izlemek için JavaMelody rehberine de göz atabilirsiniz.

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *